package com.wn.portal;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import feign.Logger;
import feign.Retryer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author yellow Docter
 * @date 2023 -07-17
 * @desc
 */
@EnableFeignClients  //开启 openfeign 的注解
@SpringBootApplication
public class PoratalApplication {

    public static void main(String[] args) {

//        for (int i = 0; i < args.length; i++) {
//            System.out.println("args[i] = " + args[i]);
//        }
//        args[0] = "--server.port=8500";
        SpringApplication.run(PoratalApplication.class,args);
    }

    /**
     *
     * portal 服务调用  member 服务 需要中间件:
     * RestTemplate  就是远程调用的中间件: （spring 内部提交的中间件 ）
     *
     * 调用的步骤:
     *   1、RestTemplate  注入岛ioc容器中
     *   2、通过 restTemplate 设置参数 调用方法
     *   3、拿到结果
     *
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

    //在启动类或配置类中注入负载均衡策略对象。所有服务请求均使用该策略。
//    @Bean
//    public IRule rules(){
//        return new RandomRule();
//    }
//
//    @Bean
//    public Logger.Level loggerLevel(){
//        return Logger.Level.FULL;
//    }
//
//    @Bean
//    public Retryer feignRetryer() {
//        return new Retryer.Default();
//    }
}
